
package com.duan.test.utils.SendMails;

import java.io.File;
import java.util.List;
import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.MessagingException;

public interface AbstractMailSender {

	

	/**
	 * 发送邮件
	 * @throws MessagingException 
	 */
	void sendMail() throws MessagingException;

	/**
	 * 创建邮件
	 * @param props
	 * @param authenticator
	 */
	void createMail(Properties props, Authenticator authenticator);

	/**
	 * 在邮件中添加可以显示的图片
	 * @param image File 图片
	 */
	void addImage(File image);

	/**
	 * 在邮件中添加 html 代码
	 * @param html String
	 */
	void addHtml(String html);

	/**
	 * 在邮件内容中增加附件（邮件中单独添加附件时使用）
	 * @param attach File 附件
	 */
	void addAttach(File attach);

	/**
	 * 在邮件内容中增加附件（邮件中添加需要在邮件中显示的图片时使用）
	 * @param attach File 附件
	 * @param header String Content-ID
	 */
	void addAttach(File attach, String header);

	/**
	 * 在邮件内容中增加文本
	 * @param content String
	 */
	void addContent(String content);

	/**
	 * 设置邮件标题
	 * @param subject String
	 */
	void setSubject(String subject);

	/**
	 * 设置抄送地址
	 * @param ccs String 类型的 List
	 */
	void setCc(List<String> ccs);

	/**
	 * 设置接收地址
	 * @param tos String 类型的 List
	 */
	void setTo(List<String> tos);

	/**
	 * 设置发送地址
	 * @param from String
	 */
	void setFrom(String from);

	/**
	 * 创建邮件
	 * @param props Properties
	 */
	void createMail(Properties props);
}
